首页
学习
活动
专区
圈层
工具
发布

MySQL高级篇-程序出了问题怎么办?

问题场景   先来看个场景:   执行一条插入语句,因为id是主键,没有设置自增,所以在插入的时候我们必须要添加该字段的值,但是上面没有添加就出现了1364的错误提示信息,针对这种情况我们应该怎么处理呢...上图中的 1364是 MySQL_error_code, HY000 是sqlstate_value 错误码 说明 MySQL_error_code 是数值类型错误代码,比如 1364 sqlstate_value...是长度为5的字符串类型错误代码,比如 HY000 案例:定义“Field_Not_Be_NULL”错误名与MySQL中违反非空约束的错误类型是“ERROR 1364 (HY000)”对应。...CONDITION FOR SQLSTATE 'HY000'; 3.定义处理程序   可以为SQL执行过程中发生的某种类型的错误定义特殊的处理程序。...SQLWARNING :匹配所有以01开头的SQLSTATE错误代码;NOT FOUND :匹配所有以02开头的SQLSTATE错误代码;SQLEXCEPTION :匹配所有没有被SQLWARNING或

78220
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    MySQL索引的一些小细

    (HY000): Field 'id' doesn't have a default value 不指定默认值,则会进行提醒。...---+------+ 3 rows in set (0.00 sec) 结论: 主键列可以不设置not null和auto_increment选项,但是这种情况下,插入不包含主键列的记录,会提示主键没有默认值...此时,需要单独提供主键的默认值。 如果主键列为int类型,并且包含auto_increment选项,则可以直接插入不包含主键列的记录。 2 主键为多个字段时,是否允许其中一个字段自增?...,没有默认值会报错,如下: mysql >>insert into index_test4 (id) values (7); ERROR 1364 (HY000): Field 'name...4 当字段有null值时,反向查找可能会得到错误结果 看看下面这个例子: mysql >>select * from index_test3; +----+------+ | id | name

    59920

    如何解决PHP连接MySQL报错“SQLSTATE Connection refused”错误问题

    解决“SQLSTATE[HY000] [2002] Connection refused”错误的解决方案大全 在Web开发和网站部署过程中,常常会遇到各种错误信息。...其中,“SQLSTATE[HY000] [2002] Connection refused”错误,通常指的是数据库连接失败的情况。...正文 一、问题分析 错误信息:“SQLSTATE[HY000] [2002] Connection refused”表示PHP脚本尝试连接到MySQL数据库时,连接被拒绝。...[HY000] [2002] Connection refused”错误的步骤通常包括: 确认MySQL服务是否启动。...希望这篇博客能帮助你排除问题,顺利解决“SQLSTATE[HY000] [2002] Connection refused”错误。如果你有其他问题,欢迎在评论区留言,讨论更多解决方案。

    1.8K10

    【MySQL】005.MySQL表的约束(上)

    (HY000): Field 'class_room' doesn't have a default value //插入教室为NULL,我们会发现提示我们class_room不能为空 mysql>...默认值 3.1 基本概念 默认值: 某一种数据会经常性的出现某个具体的值,可以在一开始就指定好,在需要真实数据的时候,用户可以选择性的使用默认值。...ERROR 1364 (HY000): Field 'name' doesn't have a default value mysql> insert into t13 (name,age,gender...default是作用在用户忽略了这一列的时候,如果设置了使用默认值,如果没有设置,直接报错。 如果我们在建表时没有设置默认值,mysql会对我们的表进行优化。...列描述 4.1 基本概念 列描述:comment,没有实际含义,专门用来描述字段,会根据表创建语句保存,用来给程序员或DBA来进行了解。

    28610

    第16章_变量、流程控制与游标

    定义条件使用 DECLARE 语句,语法格式如下: DECLARE 错误名称 CONDITION FOR 错误码(或错误条件) 错误码的说明: MySQL_error_code 和 sqlstate_value...MySQL_error_code 是数值类型错误代码。 sqlstate_value 是长度为 5 的字符串类型错误代码。...例如,在 ERROR 1418 (HY000) 中,1418 是 MySQL_error_code,'HY000’是 sqlstate_value。...错误类型(即条件)可以有如下取值: SQLSTATE '字符串错误码' :表示长度为 5 的 sqlstate_value 类型的错误代码; MySQL_error_code :匹配数值类型错误代码;...SQLWARNING :匹配所有以 01 开头的 SQLSTATE 错误代码; NOT FOUND :匹配所有以 02 开头的 SQLSTATE 错误代码; SQLEXCEPTION :匹配所有没有被

    76310

    MySQL:表的约束

    : mysql> insert into myclass(class_name) values('class1'); ERROR 1364 (HY000): Field 'class_room' doesn't...对于default而言,当用户忽略这一列的时候,如果设置了default,则使用默认值;如果没有设置default,则报错。 而对于age列: 下来再来看这个: 为什么还是让插入了呢?...而如果为我们没有在创建表的时候显示声明默认值,MySQL会优化,自动加上默认值为NULL。 四....语法: foreign key (字段名) references 主表(列) 案例: 这样的student只是有外键之名(关联关系),但是没有外键之实(没有约束)。重新创建一个。...外键需要注意: (1)从表和主表的关联关系 (2)产生外键约束 总结: 好了,到这里今天的知识就讲完了,大家有错误一点要在评论指出,我怕我一人搁这瞎bb,没人告诉我错误就寄了。

    70710

    MySQL数据库,从入门到精通:第十六篇——MySQL变量、流程控制和游标详解

    定义条件使用DECLARE语句,语法格式如下: DECLARE 错误名称 CONDITION FOR 错误码(或错误条件) 错误码的说明: MySQL_error_code和sqlstate_value...MySQL_error_code是数值类型错误代码。 sqlstate_value是长度为 5 的字符串类型错误代码。...例如,在ERROR 1418 (HY000)中, 1418 是MySQL_error_code,'HY000’是sqlstate_value。...错误类型 (即条件)可以有如下取值: SQLSTATE ‘字符串错误码’:表示长度为 5 的sqlstate_value类型的错误代码; MySQL_error_code:匹配数值类型错误代码; 错误名称...SQLWARNING:匹配所有以 01 开头的SQLSTATE错误代码; NOT FOUND:匹配所有以 02 开头的SQLSTATE错误代码; SQLEXCEPTION:匹配所有没有被SQLWARNING

    70010

    带你学MySQL系列 | 一文让你真正理解MySQL数据库的“完整性约束”?

    key限制,而没有使用主键自增(auto_increament), 需要我们自己给主键字段插入值,否则会出现如下错误。..."ERROR 1364 (HY000): Field 'sid' doesn't have a default value" 但是我们上面说过,主键字段一般是不进行修改的,也就是说不要主动给他值,主键字段应该是让系..."这些细节知识,有时候是我们没有注意到的,因此单独拿出来说明。"...insert into student(age,idcard) values (33,"123456789"); 举例如下: 6.添加默认值约束(default) 某个字段当被设置了默认值以后,当我们不为该字段指定值的时候...1)怎么添加默认值约束? 方式一:创建表的时候,给字段添加默认值。

    95240

    数据库SQL小技巧大揭秘:IGNORE选项让你的数据处理更从容

    具体来说,在 INSERT | UPDATE 语句中,IGNORE 的作用是在插入或更新数据时忽略特定的错误,而不导致整个操作失败。...另外,IGNORE 选项还可以在非空约束、写入的字段内容超过字段长度时进行截断处理等,下面是几个具体的例子。 1....忽略非空约束 2.1 列出字段赋值为null时 当列出需赋值的字段,但是对其中的非空字段赋值为null时,结果如下: mysql> select * from test1; +----+------...1364 (HY000): Field 'card_no' doesn't have a default value mysql> insert ignore into test1(id,name...aaa | aa | +----+------------+---------+------+ 6 rows in set (0.00 sec) mysql> 结果:此时插入了0 (整型的默认值

    79920
    领券